// 22. 括号生成
// @author caoshi
// @date 2022/12/11 13:20
// @since 1.0
package main

import "fmt"

var res []string

func generateParenthesis(n int) []string {

	res = make([]string, 0)
	test("", 0, 0, n)
	return res
}

func test(str string, l, r, n int) {

	if l == n && r == n {
		res = append(res, str)
	}
	if l < n {
		test(str+"(", l+1, r, n)
	}
	if r < l {
		test(str+")", l, r+1, n)
	}
}

func main() {

	res := generateParenthesis(3)
	fmt.Println(res)

}
